#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>


const char *filename = "log.txt";

int main()
{
  
  //c语言
  printf("hello printf\n");
  fprintf(stdout, "hello fprintf\n");
  // system call
  const char *msg = "hello write\n";
  write(1, msg, strlen(msg));


  fork();











 // int fd = open("/dev/pts/1", O_CREAT | O_WRONLY | O_APPEND , 0666);

 // dup2(fd, 1);

 // printf("hello world\n");
 // fprintf(stdout, "hello world\n");





// // close(0);//关掉之后 fd = 0
//  close(1);//关掉之后 (无输出)
// // close(2);//关掉之后 fd = 2
//  int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
//  //int fd = open(filename, O_RDONLY);
//  if(fd < 0)
//  {
//    perror("open");
//    return 2;
//  }
//  printf("printf, fd: %d\n", fd);
//  fprintf(stdout, "fprintf, fd: %d\n", fd);
//  fflush(stdout);
//  close(fd);
//  return 0;
}





//int main()
//{
//  struct stat st;
//  int n = stat(filename, &st);
//  if(n < 0) return 1;
//  //获取文件大小, 文件大小是无符号整数
//  printf("file size: %lu\n", st.st_size);
//
//  // int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
//  int fd = open(filename, O_RDONLY);
//  if(fd < 0)
//  {
//    perror("open");
//    return 2;
//  }
//
//  printf("fd : %d\n", fd);
//  //const char *message = "hello linux\n";
//  //
//  //write(fd, message,strlen(message));
//  //write(fd, message,strlen(message));
//  //write(fd, message,strlen(message));
//  //申请一个和和log.txt文件大小一样的文件 +1，方便将文件以字符串的形式打开
//  
//  char *file_buffer = (char*)malloc(st.st_size + 1);
//  n = read(fd, file_buffer, st.st_size);//将文件从文件缓冲去中读取
//  if(n > 0)//实际所读到的字节数量
//  {
//    file_buffer[n] = '\0';
//    printf("%s", file_buffer);
//  }
//  free(file_buffer);
//
//  close(fd);
//
//  return 0;
//}
